#include <iostream>
#include <vector>
#include <string>
#include <cstring>
#include <algorithm>
#include <map>
#include <climits>
#include <set>
#include <codecvt>
#include <locale>

using namespace std;

/*

设计一个模块实现功能：存入n个同学的名字，如“王力”、“李明”、“李芳”，然后搜寻一个字符串，如“李”，
要求将所有名字中含有“李”字的同学名字输出，时间复杂度越低越好。

*/
// string的编码方式为utf8，则采用：
std::string wstring2utf8string(const std::wstring& str)
{
    static std::wstring_convert<std::codecvt_utf8<wchar_t> > strCnv;
    return strCnv.to_bytes(str);
}
 
std::wstring utf8string2wstring(const std::string& str)
{
    static std::wstring_convert< std::codecvt_utf8<wchar_t> > strCnv;
    return strCnv.from_bytes(str);
}
 
// string的编码方式为除utf8外的其它编码方式，可采用：
std::string wstring2string(const std::wstring& str, const std::string& locale)
{
    typedef std::codecvt_byname<wchar_t, char, std::mbstate_t> F;
    static std::wstring_convert<F> strCnv(new F(locale));
 
    return strCnv.to_bytes(str);
}
 
std::wstring string2wstring(const std::string& str, const std::string& locale)
{
    typedef std::codecvt_byname<wchar_t, char, std::mbstate_t> F;
    static std::wstring_convert<F> strCnv(new F(locale));
 
    return strCnv.from_bytes(str);
}


int main(){
    string v[]={"王力","李明","李芳"};
    wstring a=L"王力";
    wcout << a <<endl;
    // for(int i=0;i<a.size();i++){
    //     wcout << a[i]<<endl;
    // }
    // for(int i=0;i<3;i++){
    //     cout << v[i][0]<<endl;
    // }


    return 0;
}